--- /dev/null
+gdk_broadway_sources = files([
+ 'broadway-buffer.c',
+ 'broadway-output.c',
+ 'broadway-server.c',
+ 'broadwayd.c',
+ 'gdkbroadway-server.c',
+ 'gdkcursor-broadway.c',
+ 'gdkdevice-broadway.c',
+ 'gdkdevicemanager-broadway.c',
+ 'gdkdisplay-broadway.c',
+ 'gdkdnd-broadway.c',
+ 'gdkeventsource.c',
+ 'gdkglobals-broadway.c',
+ 'gdkkeys-broadway.c',
+ 'gdkmonitor-broadway.c',
+ 'gdkproperty-broadway.c',
+ 'gdkscreen-broadway.c',
+ 'gdkselection-broadway.c',
+ 'gdkwindow-broadway.c',
+])
+
+gdk_broadway_public_headers = [
+ 'gdkbroadwaydisplay.h',
+ 'gdkbroadwaywindow.h',
+ 'gdkbroadwaycursor.h',
+ 'gdkbroadwaymonitor.h',
+]
+
+# Broadway backend headers aren't installed it seems
+#install_headers(gdk_broadway_public_headers, subdir: 'gtk-4.0/gdk/broadway/')
+#install_headers('gdkbroadway.h', subdir: 'gtk-4.0/gdk/')
+
+gdk_broadway_deps = [shmlib]
+
+libgdk_broadway = static_library('libgdk-broadway',
+ gdk_broadway_sources, gdkconfig, gdkenum_h,
+ include_directories: [confinc, gdkinc],
+ c_args: ['-DGDK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"'],
+ dependencies: [gdk_deps, gdk_broadway_deps])
+
+# gtk4-broadwayd
+
+broadwayd_syslib = os_win32 ? find_library('ws2_32') : shmlib
+
+clienthtml_h = custom_target('clienthtml.h',
+ input : 'client.html',
+ output : 'clienthtml.h',
+ command : [find_program('toarray.pl'), 'client_html', '@INPUT@'],
+ capture : true)
+
+broadwayjs_h = custom_target('broadwayjs.h',
+ input : ['broadway.js', 'rawinflate.min.js'],
+ output : 'broadwayjs.h',
+ command : [find_program('toarray.pl'), 'broadway_js', '@INPUT0@', '@INPUT1@'],
+ capture : true)
+
+executable('gtk4-broadwayd',
+ clienthtml_h, broadwayjs_h,
+ 'broadwayd.c', 'broadway-server.c', 'broadway-buffer.c', 'broadway-output.c',
+ include_directories: [confinc, gdkinc],
+ c_args: ['-DGDK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"'],
+ dependencies : [broadwayd_syslib, gdk_deps],
+ install : true)
'gdkseatdefaultprivate.h',
])
-gdk_broadway_sources = files([
- 'broadway/broadway-buffer.c',
- 'broadway/broadway-buffer.h',
- 'broadway/broadway-output.c',
- 'broadway/broadway-output.h',
- 'broadway/broadway-server.c',
- 'broadway/broadway-server.h',
- 'broadway/broadwayd.c',
- 'broadway/gdkbroadway-server.c',
- 'broadway/gdkcursor-broadway.c',
- 'broadway/gdkdevice-broadway.c',
- 'broadway/gdkdevice-broadway.h',
- 'broadway/gdkdevicemanager-broadway.c',
- 'broadway/gdkdevicemanager-broadway.h',
- 'broadway/gdkdisplay-broadway.c',
- 'broadway/gdkdisplay-broadway.h',
- 'broadway/gdkdnd-broadway.c',
- 'broadway/gdkeventsource.c',
- 'broadway/gdkeventsource.h',
- 'broadway/gdkglobals-broadway.c',
- 'broadway/gdkkeys-broadway.c',
- 'broadway/gdkmonitor-broadway.c',
- 'broadway/gdkmonitor-broadway.h',
- 'broadway/gdkproperty-broadway.c',
- 'broadway/gdkscreen-broadway.c',
- 'broadway/gdkscreen-broadway.h',
- 'broadway/gdkselection-broadway.c',
- 'broadway/gdkwindow-broadway.c',
- 'broadway/gdkwindow-broadway.h',
-])
-
-gdk_broadway_private_sources = files([
- 'broadway/gdkprivate-broadway.h'
-])
-
gdk_gresource_xml = configure_file(output : 'gdk.gresource.xml',
input : 'gen-gsk-resources-xml.py',
command : [find_program('gen-gdk-gresources-xml.py'),
configuration: gdkversion_cdata,
install_dir: 'include/gtk-4.0/gdk/')
+gdkinc = include_directories('.')
+
xinc = include_directories('x11')
wlinc = include_directories('.')
endif
endif
-if x11_enabled
- subdir('x11')
- gdk_deps += gdk_x11_deps
- gdk_sources += gdk_x11_sources
-endif
-
-if wayland_enabled
- subdir('wayland')
- gdk_deps += gdk_wayland_deps
- gdk_sources += gdk_wayland_sources
-endif
-
-if broadway_enabled
- gdk_deps += [
- shmlib,
- ]
- gdk_sources += [
- gdk_broadway_sources,
- gdk_broadway_private_sources
- ]
-endif
+gdk_backends = []
+foreach backend : ['broadway', 'wayland', 'x11']
+ if get_variable('@0@_enabled'.format(backend))
+ subdir(backend)
+ gdk_deps += get_variable('gdk_@0@_deps'.format(backend))
+ gdk_backends += get_variable('libgdk_@0@'.format(backend))
+ endif
+endforeach
libgdk = static_library('gdk',
sources: [gdk_sources, gdkconfig],
c_args: ['-DGDK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"'],
include_directories: [confinc, xinc, wlinc],
+ link_with: gdk_backends,
dependencies: gdk_deps,
)
+++ /dev/null
-#include "gdkeventsource.c"
'gdkdevice-wayland.c',
'gdkdisplay-wayland.c',
'gdkdnd-wayland.c',
- 'gdkeventsource-wayland.c',
+ 'gdkeventsource.c',
'gdkglcontext-wayland.c',
'gdkkeys-wayland.c',
'gdkmonitor-wayland.c',
output : '@0@-protocol.c'.format(output_base),
command: [genprotocols, wayland_scanner, '@INPUT@', '@OUTPUT@', 'code'])
endforeach
+
+libgdk_wayland = static_library('libgdk-wayland',
+ gdk_wayland_sources, gdkconfig, gdkenum_h,
+ include_directories: [confinc, gdkinc],
+ c_args: ['-DGDK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"'],
+ dependencies: [gdk_deps, gdk_wayland_deps])
xcomposite_dep,
xrandr_dep,
]
+
+libgdk_x11 = static_library('libgdk-x11',
+ gdk_x11_sources, gdkconfig, gdkenum_h,
+ include_directories: [confinc, gdkinc],
+ c_args: ['-DGDK_COMPILATION', '-DG_LOG_DOMAIN="Gdk"'],
+ dependencies: [gdk_deps, gdk_x11_deps])
# install_headers(a11y_headers, subdir: 'gtk-3.0/gtk/a11y/')
libgtk = shared_library('gtk',
- sources: [typefuncs, gtk_sources, gtkmarshal_h],
+ sources: [typefuncs, gtk_sources, gtkmarshal_h, gtkprivatetypebuiltins_h],
c_args: gtk_cargs,
include_directories: [confinc, gdkinc, gtkinc],
dependencies: [gtk_deps, libgdk_dep, libgsk_dep],